use stdbool.h and inttypes.h in MSVC 2013 and later, and use more C99-compatible...
authorSteven G. Johnson <stevenj@alum.mit.edu>
Sun, 11 Dec 2016 12:15:53 +0000 (07:15 -0500)
committerSteven G. Johnson <stevenj@alum.mit.edu>
Sun, 11 Dec 2016 12:16:48 +0000 (07:16 -0500)
utf8proc.h

index 96328fb45056cf411c7b1d27d761884dfcb3d67e..99b4fdb079c400f52e2a30e3dd23f0dce23ae6cd 100644 (file)
@@ -78,7 +78,8 @@
 
 #include <stdlib.h>
 #include <sys/types.h>
-#ifdef _MSC_VER
+#if defined(_MSC_VER) && _MSC_VER < 1800
+// MSVC prior to 2013 lacked stdbool.h and inttypes.h
 typedef signed char utf8proc_int8_t;
 typedef unsigned char utf8proc_uint8_t;
 typedef short utf8proc_int16_t;
@@ -93,8 +94,13 @@ typedef int utf8proc_ssize_t;
 typedef unsigned int utf8proc_size_t;
 #  endif
 #  ifndef __cplusplus
+// emulate C99 bool
 typedef unsigned char utf8proc_bool;
-enum {false, true};
+#    ifndef __bool_true_false_are_defined
+#      define false 0
+#      define true 1
+#      define __bool_true_false_are_defined 1
+#    endif
 #  else
 typedef bool utf8proc_bool;
 #  endif